package com.example.verification.utils;

import lombok.Builder;
import lombok.Getter;
import lombok.Setter;

/**
 * @author rcl
 * @date 2019/5/22 10:51
 */
@Getter
@Setter
@Builder
public class RetBack<T> {

    /**
     * 成功调用代码
     */
    public static final boolean CODE_SUCCESS = true;

    /**
     * 失败调用代码
     */
    public static final boolean CODE_FAIL = false;

    private boolean success;

    private String errMsg;

    private String code;

    private T data;

    /**
     * 快速构建成功响应体
     *
     * @param data 调用结果
     * @param <T>  结果类型
     * @return 成功响应体
     */
    public static <T> RetBack<T> success(T data) {
        return RetBack
                .<T>builder()
                .data(data)
                .success(CODE_SUCCESS)
                .errMsg("操作成功")
                .build();
    }

    /**
     * 快速构建成功响应体
     *
     * @param message 错误信息
     * @param <T>     结果类型
     * @return 成功响应体
     */
    public static <T> RetBack<T> fail(String message) {
        return RetBack
                .<T>builder()
                .success(CODE_FAIL)
                .errMsg(message)
                .build();
    }
}
